﻿Public Class Ccliente

    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal pCliente As Ecliente, ByVal pApoderado As Ecliente, ByVal pConyugue As Ecliente) As Boolean
        Dim resultado As Boolean = False

        Dim options As New TransactionOptions
        options.IsolationLevel = Transactions.IsolationLevel.ReadCommitted
        options.Timeout = New TimeSpan(0, 2, 0)

        Using scope As New TransactionScope(TransactionScopeOption.Required, options)
            Try
                Dim idCliente As Int32 = 0
                Dim resultadoCliente As Boolean = Rcliente.Añadir(descEmpresa, pCliente, idCliente)

                Dim idApoderado As Int32 = 0
                Dim resultadoApoderado As Boolean = False
                If Not pApoderado Is Nothing Then
                    resultadoApoderado = Rcliente.AñadirApoderado(descEmpresa, pApoderado, idApoderado, idCliente)
                End If

                Dim idConyugue As Int32 = 0
                Dim resultadoConyugue As Boolean = False
                If Not pConyugue Is Nothing Then
                    resultadoConyugue = Rcliente.AñadirConyugueMantenedor(descEmpresa, pConyugue, idConyugue, idCliente)
                End If

                If Not pApoderado Is Nothing Then
                    If Not pConyugue Is Nothing Then
                        If resultadoCliente AndAlso resultadoApoderado AndAlso resultadoConyugue Then resultado = True
                    Else
                        If resultadoCliente AndAlso resultadoApoderado Then resultado = True
                    End If
                ElseIf Not pConyugue Is Nothing Then
                    If resultadoCliente AndAlso resultadoConyugue Then resultado = True
                Else
                    If resultadoCliente Then resultado = True
                End If

                scope.Complete()
            Catch ex As Exception
                Throw
            End Try
        End Using

        Return resultado
    End Function
    Public Shared Function Editar(ByVal descEmpresa As String, ByVal pCliente As Ecliente, ByVal pApoderado As Ecliente, ByVal pConyugue As Ecliente) As Boolean
        Dim resultado As Boolean = False

        Dim options As New TransactionOptions
        options.IsolationLevel = Transactions.IsolationLevel.ReadCommitted
        options.Timeout = New TimeSpan(0, 2, 0)

        Using scope As New TransactionScope(TransactionScopeOption.Required, options)
            Try
                Dim resultadoCliente As Boolean = Rcliente.EditarClienteMantenedor(descEmpresa, pCliente)

                Dim resultadoApoderado As Boolean = False
                If Not pApoderado Is Nothing Then
                    resultadoApoderado = Rcliente.EditarApoderadoMantenedor(descEmpresa, pApoderado)
                End If

                Dim resultadoConyugue As Boolean = False
                If Not pConyugue Is Nothing Then
                    resultadoConyugue = Rcliente.EditarConyugueMantenedor(descEmpresa, pConyugue)
                End If

                If Not pApoderado Is Nothing Then
                    If Not pConyugue Is Nothing Then
                        If resultadoCliente AndAlso resultadoApoderado AndAlso resultadoConyugue Then resultado = True
                    Else
                        If resultadoCliente AndAlso resultadoApoderado Then resultado = True
                    End If
                ElseIf Not pConyugue Is Nothing Then
                    If resultadoCliente AndAlso resultadoConyugue Then resultado = True
                Else
                    If resultadoCliente Then resultado = True
                End If

                scope.Complete()
            Catch ex As Exception
                Throw
            End Try
        End Using

        Return resultado
    End Function

End Class
